<?php
//自动生成,请根据需要修改
namespace app\service\controller;
use app\common\controller\Base;
use think\facade\Request;
use think\Db;
/**
* @title 参与客服接口
* @description 参与客服说明
* @group 客服
*/
class ServiceUser extends Base{

	/**
	* @title 插入记录
	* @description 插入参与客服数据
	* @author 开发者（范浩婷）
	* @url /service/service_user/add
	* @method post
	*
	* @param name:token require:1 default: desc:token
	*
	* @param name:chat_id type:Int require:1 default:0 other: desc:窗口id
	* @param name:service_chat_id type:VarChar require:1 default:0 other: desc:服务id
	* @param name:status type:TinyInt require:1 default:0 other: desc:状态(1-正在使用中、0-禁用中)
	* @param name:is_delete type:TinyInt require:1 default:0 other: desc:已删除
	* @param name:create_time type:Int require:1 default:0 other: desc:创建时间
	* @param name:in_service type:TinyInt require:1 default:0 other: desc:服务中
	* @param name:merchant_id type:Int require:1 default:0 other: desc:商城id
	* @param name:service_type type:VarChar require:1 default:0 other: desc:咨询类型(未知、售前、售后)
     * @param name:service_name type:Varchar require:1 default:0 other: desc:名称
	* @param name:is_accept type:TinyInt require:1 default:0 other: desc:可接受信息
	* @param name:is_send type:TinyInt require:1 default:0 other: desc:可发送信息
	* @param name:user_account_id type:Int require:1 default:0 other: desc:参与用户账号id
	* @param name:head_img type:VarChar require:1 default:0 other: desc:头像
	*
	*
	* @return chat_id:窗口id
	* @return service_chat_id:服务id
	* @return status:状态
	* @return is_delete:已删除
	* @return create_time:创建时间
	* @return in_service:服务中
	* @return merchant_id:商城id
	* @return service_type:咨询类型
	* @return service_name:名称
	* @return is_accept:可接受信息
	* @return is_send:可发送信息
	* @return user_account_id:参与用户账号id
     * @return head_img:头像
	*/
	public function add (){
		//模块 - 输入数据
		$input=input();
		//模块 - 验证器
		$service_userValidate = new \app\service\validate\ServiceUser;
		$validate = $service_userValidate->scene('except_id')->check($input);
		if (!$validate) {
			$msg['msg'] = '验证失败';
			$msg['validate'] = $service_userValidate->getError();
			return $this->errorJson($msg);
		}

		// ---	模块 - 新增  ---
		//插入的数据
		$insert_data = [
			'chat_id'=>$input['chat_id'],
			'service_chat_id'=>$input['service_chat_id'],
			'status'=>$input['status'],
			'is_delete'=>$input['is_delete'],
			'create_time'=>$input['create_time'],
			'in_service'=>$input['in_service'],
			'merchant_id'=>$input['merchant_id'],
			'service_type'=>$input['service_type'],
			'service_name'=>$input['service_name'],
			'is_accept'=>$input['is_accept'],
			'is_send'=>$input['is_send'],
			'user_account_id'=>$input['user_account_id'],
            'head_img'=>$input['head_img']
		];
		//添加数据
		$insert_res = Db::name('service_user')->data($insert_data)->insert();
		if(!$insert_res){
			$msg['msg'] = '插入数据失败！';
			return $this->errorJson($msg);
		}
		$msg['res'] = $insert_res;


		//接口输出json数据
		$msg['msg'] = '操作成功！';
		return $this->successJson($msg);
	}
	/**
	* @title 获取列表数据（paginate）
	* @description 获取参与客服的列表数据（分页）
	* @author 开发者（范浩婷）
	* @url /service/service_user/get_list
	* @method *
	*
	* @param name:token require:1 default: desc:token
	*
	* @param name:id type:Int require:1 default:0 other: desc:id
	* @param name:chat_id type:Int require:1 default:0 other: desc:窗口id
	* @param name:service_chat_id type:VarChar require:1 default:0 other: desc:服务id
	* @param name:status type:TinyInt require:1 default:0 other: desc:状态(1-正在使用中、0-禁用中)
	* @param name:is_delete type:TinyInt require:1 default:0 other: desc:已删除
	* @param name:create_time type:Int require:1 default:0 other: desc:创建时间
	* @param name:in_service type:TinyInt require:1 default:0 other: desc:服务中
	* @param name:merchant_id type:Int require:1 default:0 other: desc:商城id
	* @param name:service_type type:VarChar require:1 default:0 other: desc:咨询类型(未知、售前、售后)
     * @param name:service_name type:Varchar require:1 default:0 other: desc:名称
	* @param name:is_accept type:TinyInt require:1 default:0 other: desc:可接受信息
	* @param name:is_send type:TinyInt require:1 default:0 other: desc:可发送信息
	* @param name:user_account_id type:Int require:1 default:0 other: desc:参与用户账号id
     * @param name:head_img type:VarChar require:1 default:0 other: desc:头像
	* @param name:page type:Int require:0 default:0 other: desc:当前页
	* @param name:pagesize type:Int require:0 default:0 other: desc:每页数量
	*
	* @return id:id
	* @return chat_id:窗口id
	* @return service_chat_id:服务id
	* @return status:状态
	* @return is_delete:已删除
	* @return create_time:创建时间
	* @return in_service:服务中
	* @return merchant_id:商城id
	* @return service_type:咨询类型
	* @return service_name:名称
	* @return is_accept:可接受信息
	* @return is_send:可发送信息
	* @return user_account_id:参与用户账号id
     * @return head_img:头像
	*/
	public function get_list (){
		//模块 - 输入数据
		$input=input();
		// ---	模块 - 查询  ---
		//查询条件
		$temp_map = [
			['id','=',$input['id']],
			['chat_id','=',$input['chat_id']],
			['service_chat_id','like','%'.$input['service_chat_id'].'%'],
			['status','=',$input['status']],
			['is_delete','=',$input['is_delete']],
			['create_time','=',$input['create_time']],
			['in_service','=',$input['in_service']],
			['merchant_id','=',$input['merchant_id']],
			['service_type','like','%'.$input['service_type'].'%'],
			['service_name','=',$input['service_name']],
			['is_accept','=',$input['is_accept']],
			['is_send','=',$input['is_send']],
			['user_account_id','=',$input['user_account_id']],
            ['head_img','=',$input['head_img']]
		];
		//去除为空的条件
		$paginate_map = [];
		foreach ($temp_map as $k=>$v){
			if ($v[2]===null || $v[2]=='' || $v[2]=='%%'){
				continue;
			}
			array_push($paginate_map,$v);
		}

		//获取数据
		$select_res = Db::name('service_user')->where($paginate_map)->paginate();

		// paginate 返回数据
		$msg['list'] = $select_res;


		//接口输出json数据
		$msg['msg'] = '操作成功！';
		return $this->successJson($msg);
	}
	/**
	* @title 获取列表数据（select）
	* @description 获取参与客服的列表数据（无分页）
	* @author 开发者（范浩婷）
	* @url /service/service_user/get_select
	* @method *
	*
	* @param name:token require:1 default: desc:token
	*
	* @param name:id type:Int require:1 default:0 other: desc:id
	* @param name:chat_id type:Int require:1 default:0 other: desc:窗口id
	* @param name:service_chat_id type:VarChar require:1 default:0 other: desc:服务id
	* @param name:status type:TinyInt require:1 default:0 other: desc:状态(1-正在使用中、0-禁用中)
	* @param name:is_delete type:TinyInt require:1 default:0 other: desc:已删除
	* @param name:create_time type:Int require:1 default:0 other: desc:创建时间
	* @param name:in_service type:TinyInt require:1 default:0 other: desc:服务中
	* @param name:merchant_id type:Int require:1 default:0 other: desc:商城id
	* @param name:service_type type:VarChar require:1 default:0 other: desc:咨询类型(未知、售前、售后)
     * @param name:service_name type:Varchar require:1 default:0 other: desc:名称
	* @param name:is_accept type:TinyInt require:1 default:0 other: desc:可接受信息
	* @param name:is_send type:TinyInt require:1 default:0 other: desc:可发送信息
	* @param name:user_account_id type:Int require:1 default:0 other: desc:参与用户账号id
     * @param name:head_img type:VarChar require:1 default:0 other: desc:头像
	*
	* @return id:id
	* @return chat_id:窗口id
	* @return service_chat_id:服务id
	* @return status:状态
	* @return is_delete:已删除
	* @return create_time:创建时间
	* @return in_service:服务中
	* @return merchant_id:商城id
	* @return service_type:咨询类型
	* @return service_name:名称
	* @return is_accept:可接受信息
	* @return is_send:可发送信息
	* @return user_account_id:参与用户账号id
     * @return head_img:头像
	*/
	public function get_select (){
		//模块 - 输入数据
		$input=input();
		// ---	模块 - 查询  ---
		//查询条件
		$temp_map = [
			['id','=',$input['id']],
			['chat_id','=',$input['chat_id']],
			['service_chat_id','like','%'.$input['service_chat_id'].'%'],
			['status','=',$input['status']],
			['is_delete','=',$input['is_delete']],
			['create_time','=',$input['create_time']],
			['in_service','=',$input['in_service']],
			['merchant_id','=',$input['merchant_id']],
			['service_type','like','%'.$input['service_type'].'%'],
			['service_name','=',$input['service_name']],
			['is_accept','=',$input['is_accept']],
			['is_send','=',$input['is_send']],
			['user_account_id','=',$input['user_account_id']],
            ['head_img','=',$input['head_img']]
		];
		//去除为空的条件
		$select_map = [];
		foreach ($temp_map as $k=>$v){
			if ($v[2]===null || $v[2]=='' || $v[2]=='%%'){
				continue;
			}
			array_push($select_map,$v);
		}

		//获取数据
		$select_res = Db::name('service_user')->where($select_map)->select();

		// select 返回数据
		$msg['list'] = $select_res;


		//接口输出json数据
		$msg['msg'] = '操作成功！';
		return $this->successJson($msg);
	}
	/**
	* @title 获取单条数据
	* @description 根据ID获取参与客服的指定记录
	* @author 开发者（范浩婷）
	* @url /service/service_user/info
	* @method *
	*
	* @param name:token require:1 default: desc:token
	*
	* @param name:id type:Int require:1 default:0 other: desc:id
	*
	*
	* @return id:id
	*
	*/
	public function info (){
		//模块 - 输入数据
		$input['id'] = Request::param('id/d');

		// input结果返回
		$msg['data']['id'] = $input['id'];

		//模块 - 验证器
		$service_userValidate = new \app\service\validate\ServiceUser;
		$validate = $service_userValidate->scene('only_id')->check($input);
		if (!$validate) {
			$msg['msg'] = '验证失败';
			$msg['validate'] = $service_userValidate->getError();
			return $this->errorJson($msg);
		}

		// ---	模块 - 查询  ---
		//查询条件
		$temp_map = [
			['id','=',$input['id']],
		];
		//去除为空的条件
		$find_map = [];
		foreach ($temp_map as $k=>$v){
			if ($v[2]===null || $v[2]=='' || $v[2]=='%%'){
				continue;
			}
			array_push($find_map,$v);
		}

		//获取数据
		$select_res = Db::name('service_user')->where($find_map)->find();

		// find 返回数据
		$msg['data'] = $select_res;


		//接口输出json数据
		$msg['msg'] = '操作成功！';
		return $this->successJson($msg);
	}
	/**
	* @title 更新记录
	* @description 根据ID更新参与客服指定记录的数据
	* @author 开发者（范浩婷）
	* @url /service/service_user/edit
	* @method post
	*
	* @param name:token require:1 default: desc:token
	*
	* @param name:id type:Int require:1 default:0 other: desc:id
	* @param name:chat_id type:Int require:1 default:0 other: desc:窗口id
	* @param name:service_chat_id type:VarChar require:1 default:0 other: desc:服务id
	* @param name:status type:TinyInt require:1 default:0 other: desc:状态(1-正在使用中、0-禁用中)
	* @param name:is_delete type:TinyInt require:1 default:0 other: desc:已删除
	* @param name:create_time type:Int require:1 default:0 other: desc:创建时间
	* @param name:in_service type:TinyInt require:1 default:0 other: desc:服务中
	* @param name:merchant_id type:Int require:1 default:0 other: desc:商城id
	* @param name:service_type type:VarChar require:1 default:0 other: desc:咨询类型(未知、售前、售后)
     * @param name:service_name type:Varchar require:1 default:0 other: desc:名称
	* @param name:is_accept type:TinyInt require:1 default:0 other: desc:可接受信息
	* @param name:is_send type:TinyInt require:1 default:0 other: desc:可发送信息
	* @param name:user_account_id type:Int require:1 default:0 other: desc:参与用户账号id
     * @param name:head_img type:VarChar require:1 default:0 other: desc:头像
	*
	* @return id:id
	* @return chat_id:窗口id
	* @return service_chat_id:服务id
	* @return status:状态
	* @return is_delete:已删除
	* @return create_time:创建时间
	* @return in_service:服务中
	* @return merchant_id:商城id
	* @return service_type:咨询类型
	* @return service_name:名称
	* @return is_accept:可接受信息
	* @return is_send:可发送信息
	* @return user_account_id:参与用户账号id
     * @return head_img:头像
	*/
	public function edit (){
		//模块 - 输入数据
		$input=input();

		//模块 - 验证器
		$service_userValidate = new \app\service\validate\ServiceUser;
		$validate = $service_userValidate->scene('all_field')->check($input);
		if (!$validate) {
			$msg['msg'] = '验证失败';
			$msg['validate'] = $service_userValidate->getError();
			return $this->errorJson($msg);
		}

		// ---	模块 - 修改  ---
		//更新的条件
		$update_date = [
		'id'=>$input['id'],
		];
		//更新的数据
		$update_map = [
			'chat_id'=>$input['chat_id'],
			'service_chat_id'=>$input['service_chat_id'],
			'status'=>$input['status'],
			'is_delete'=>$input['is_delete'],
			'create_time'=>$input['create_time'],
			'in_service'=>$input['in_service'],
			'merchant_id'=>$input['merchant_id'],
			'service_type'=>$input['service_type'],
			'service_name'=>$input['service_name'],
			'is_accept'=>$input['is_accept'],
			'is_send'=>$input['is_send'],
			'user_account_id'=>$input['user_account_id'],
            'head_img'=>$input['head_img']
		];
		//获取数据
		$update_res = Db::name('service_user')->where($update_date)->update($update_map);
		if(!$update_res){
			$msg['msg'] = '更新据失败！';
			return $this->errorJson($msg);
		}
		$msg['res'] = $update_res;


		//接口输出json数据
		$msg['msg'] = '操作成功！';
		return $this->successJson($msg);
	}
	/**
	* @title 按条件删除记录
	* @description 按条件删除参与客服的数据
	* @author 开发者（范浩婷）
	* @url /service/service_user/delete
	* @method post
	*
	* @param name:token require:1 default: desc:token
	*
	* @param name:id type:Int require:1 default:0 other: desc:id
	* @param name:chat_id type:Int require:1 default:0 other: desc:窗口id
	* @param name:service_chat_id type:VarChar require:1 default:0 other: desc:服务id
	* @param name:status type:TinyInt require:1 default:0 other: desc:状态(1-正在使用中、0-禁用中)
	* @param name:is_delete type:TinyInt require:1 default:0 other: desc:已删除
	* @param name:create_time type:Int require:1 default:0 other: desc:创建时间
	* @param name:in_service type:TinyInt require:1 default:0 other: desc:服务中
	* @param name:merchant_id type:Int require:1 default:0 other: desc:商城id
	* @param name:service_type type:VarChar require:1 default:0 other: desc:咨询类型(未知、售前、售后)
     * @param name:service_name type:Varchar require:1 default:0 other: desc:名称
	* @param name:is_accept type:TinyInt require:1 default:0 other: desc:可接受信息
	* @param name:is_send type:TinyInt require:1 default:0 other: desc:可发送信息
	* @param name:user_account_id type:Int require:1 default:0 other: desc:参与用户账号id
     * @param name:head_img type:VarChar require:1 default:0 other: desc:头像
	*
	* @return id:id
	* @return chat_id:窗口id
	* @return service_chat_id:服务id
	* @return status:状态
	* @return is_delete:已删除
	* @return create_time:创建时间
	* @return in_service:服务中
	* @return merchant_id:商城id
	* @return service_type:咨询类型
	* @return service_name:名称
	* @return is_accept:可接受信息
	* @return is_send:可发送信息
	* @return user_account_id:参与用户账号id
	* @return head_img:头像
	*
	*/
	public function delete (){
		//模块 - 输入数据
        $input=input();
		// ---  模块 - 删除  ---
		//删除的条件
		$temp_map = [
			['id','=',$input['id']],
			['chat_id','=',$input['chat_id']],
			['service_chat_id','=',$input['service_chat_id']],
			['status','=',$input['status']],
			['is_delete','=',$input['is_delete']],
			['create_time','=',$input['create_time']],
			['in_service','=',$input['in_service']],
			['merchant_id','=',$input['merchant_id']],
			['service_type','=',$input['service_type']],
			['service_name','=',$input['service_name']],
			['is_accept','=',$input['is_accept']],
			['is_send','=',$input['is_send']],
			['user_account_id','=',$input['user_account_id']],
            ['head_img','=',$input['head_img']]
		];
		$delete_map = [];
		foreach ($temp_map as $k=>$v){
			if ($v[2] == null || $v[2] == ''){
				continue;
			}
			array_push($delete_map,$v);
		}
		if(empty($delete_map)){
			$msg['msg'] = '删除条件不能为空';
			return $this->errorJson($msg);
		}

		//删除数据
		$delete_res = Db::name('service_user')->where($delete_map)->delete();
		if(!$delete_res){
			$msg['msg'] = '删除数据失败！';
			return $this->errorJson($msg);
		}
		$msg['res'] = $delete_res;


		//接口输出json数据
		$msg['msg'] = '操作成功！';
		return $this->successJson($msg);
	}

}
